/* * Copyright 2016 SonicWALL Inc. * All rights reserved. * * 1. This source code must strictly not be redistributed or copied or stored in * un-authorized location. * * 2. Access to the source code must be limited to the licensee and * members approved by SonicWALL Inc.. * * 3. All derivatives or modifications must include this copyright notice. * * 4. SonicWALL Inc. name may not be used to endorse or promote products * derived from this software without specific prior written permission. * * 5. Possessing or any other form of access to this source code without * valid development license and/or written permission from SonicWALL Inc. is * prohibited. * * 6. Software is confidential and protected. Title to Software and all * associated intellectual property rights is retained by SonicWALL Inc.. * Unless enforcement is prohibited by applicable law, you may not adopt, * decompile, or reverse engineer this Software without written permission * from SonicWALL Inc.. No right, title or interest in or to any trademark, * service mark, logo or trade name of SonicWALL Inc. is granted under * this Agreement. * * This Software,including technical data,may be subject to U.S. export control * laws, including the U.S. Export Administration Act and its associated * regulations, and may be subject to export or import regulations in other * countries.You warrant that You will comply strictly in all respects with all * such regulations and acknowledge that you have the responsibility to obtain * licenses to export, re-export or import the Software. * * LIMITATION OF LIABILITY. TO THE EXTENT NOT PROHIBITED BY LAW, * IN NO EVENT WILL SONICWALL INC. BE LIABLE FOR ANY LOST REVENUE, PROFIT * OR DATA, OR FOR SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR * PUNITIVE DAMAGES, HOWEVER CAUSED REGARDLESS OF THE THEORY OF LIABILITY, * ARISING OUT OF OR RELATED TO THE USE OF OR INABILITY TO USE SOFTWARE, * EVEN IF SONICWALL INC. HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. In no * event will SonicWALL Inc.'s liability to you, whether in contract, tort (including * negligence), or otherwise, exceed the amount paid by you for Software * under this Agreement. The foregoing limitations will apply even if the * above stated warranty fails of its essential purpose. Some states do * not allow the exclusion of incidental or consequential damages, so some * of the terms above may not be applicable to you. * */ var sw_httprp_apache_flg=0;var sw_httprp_apache_path_normal="go/";var sw_httprp_apache_path_citrix="cx/";var sw_httprp_cgi_path_normal="nph-httprp/";var sw_httprp_cgi_path_citrix="nph-citrix/";var sw_httprp_cgi_path=sw_httprp_cgi_path_normal;var sw_httprp_oldWinOpen=window.open;var sw_httprp_oldWinNavigate=window.navigate;var sw_httprp_http_head="http://";var sw_httprp_https_head="https://";var sw_httprp_http_head_encode="http%3a%2f%2f";var sw_httprp_https_head_encode="https%3a%2f%2f";window.open=function(a1,a2,a3,a4){switch(arguments.length){case 0:return sw_httprp_oldWinOpen();break;case 1:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1));break;case 2:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1),a2);break;case 3:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1),a2,a3);break;case 4:default:return sw_httprp_oldWinOpen(sw_httprp_rewrite_url(a1),a2,a3,a4);}} if(window.navigate) {window.navigate=function(a1){return sw_httprp_oldWinNavigate(sw_httprp_rewrite_url(a1));}} if(location.href.indexOf(sw_httprp_apache_path_citrix)!=-1) {sw_httprp_cgi_path=sw_httprp_apache_path_citrix;sw_httprp_apache_flg=1;} else if(location.href.indexOf("/"+sw_httprp_apache_path_normal)!=-1) {sw_httprp_cgi_path=sw_httprp_apache_path_normal;sw_httprp_apache_flg=1;} else {sw_httprp_cgi_path=undefined;sw_httprp_apache_flg=1;} var sw_httprp_orig_doc=(location.href).substring((location.href).lastIndexOf('/')+1);var sw_httprp_orig_host=location.host;var sw_httprp_orig_proto=(location.protocol).substring(0,(location.protocol).length-1);var sw_httprp_orig_proto_prefix=location.protocol;var sw_httprp_orig_path=undefined;var sw_httprp_orig_pathname=location.pathname;var sw_httprp_orig_href=location.href;var sw_httprp_location_href=location.href;var sw_httprp_host_url=undefined;var sw_httprp_base_ref=undefined;var sw_httprp_base=undefined;var sw_httprp_owa_flg=((location.href).search(/\/(exchange|exchweb|public)/)!=-1);var sw_httprp_lotuswa_flg=((location.href).search(/\/(iNotes|mail)/)!=-1);var sw_httprp_is_portal_flg=0;var sw_documentDotWriteBuffer="";var sw_httprp_basictag_regex_obj=new RegExp('(<(\\S+\\s+)(.+?)(/?>)|)(?!(.*<[^>]+$))','i');var sw_httprp_request_regex="^https://(.*?/"+(!sw_httprp_apache_flg?".*?/":"")+sw_httprp_cgi_path+")(?:((https?)(?:\\:|%3a)?/{1,2}([^/]+))?(.*))?$";var sw_httprp_tag_regex="^<(\\S+\\s+)(.+?)(/?>)$";var sw_httprp_tag_regex_obj=new RegExp(sw_httprp_tag_regex);var sw_httprp_tag_attr_regex="(attr=(?:\".\"|'.'|[^\"'])\\s*)|([^\\s>]+?)(?:(\\s*=\\s*)((?:[^\\s'\"]+)|(')(?:[^\\\\']*(?:\\\\.)?)*'?|(\")(?:[^\\\\\"]*(?:\\\\.)?)*\"?)|$|(\\s+))(\\s*)";var sw_httprp_tag_attr_regex_obj=new RegExp(sw_httprp_tag_attr_regex);var sw_httprp_body_regex="(?:)+|<([^<>\"']|<%.*?%>|"+"\"(?:[^\\\"]|\\.)*?\"\s*\"?|'(?:[^>])*)*?>";var sw_httprp_body_regex_obj=new RegExp(sw_httprp_body_regex,"i");var sw_httprp_base_regex="^(https?://(?:.*?:.*?@)?[^/]+)";var sw_httprp_path_regex="((/[^\?]*)*(\\\?.*)*)";var sw_httprp_abs_url_regex_obj=new RegExp(sw_httprp_base_regex+sw_httprp_path_regex,"i");var sw_httprp_cgi_path_regex_obj=new RegExp(sw_httprp_cgi_path);var sw_httprp_base_ref_regex_obj=undefined;var sw_httprp_proto_regex_obj=new RegExp("^(http|//)");var sw_httprp_proto_http_regex_obj=new RegExp("^(http://)");var sw_httprp_proto_https_regex_obj=new RegExp("^https://");var sw_httprp_styleBgImage_regex_obj=new RegExp("url\\([^\\)]*\\)");var sw_httprp_signed_cookie_regex_obj=new RegExp('__proxy_ssl_vpn__COOKIE__([-:\\[\\]./0-9a-zA-Z]+)(__([0-9]{1,5}))?__','i');var SW_HTTPRP_LOG_LEVEL_DEBUG=7;var SW_HTTPRP_LOG_LEVEL_INFO=6;var SW_HTTPRP_LOG_LEVEL_ERR=3;var HTTPRP_TAGNAME_MATCH_INDEX=1;var HTTPRP_ATTRLIST_MATCH_INDEX=2;var HTTPRP_ENDTAG_MATCH_INDEX=3;var HTTPRP_ATTRSTR_MATCH_INDEX=0;var HTTPRP_ATTRNAME_MATCH_INDEX=2;var HTTPRP_EQUALS_MATCH_INDEX=3;var HTTPRP_ATTRVALUE_MATCH_INDEX=4;var HTTPRP_SQUOT_MATCH_INDEX=5;var HTTPRP_DQUOT_MATCH_INDEX=6;var HTTPRP_ATTRSPACE_MATCH_INDEX=7;var HTTPRP_BASE_MATCH_INDEX=1;var HTTPRP_ORIG_PROTO_MATCH_INDEX=3;var HTTPRP_ORIG_HOST_MATCH_INDEX=4;var HTTPRP_ORIG_PATH_MATCH_INDEX=5;var HTTP_PROTO_STR_LEN=new String("http://").length;var HTTPS_PROTO_STR_LEN=new String("https://").length;var sw_httprp_tag_attr_array=new Array("action","background","cite","classid","codebase","data","datasrc","deleteditems","folder","folderroot","for","href","longdesc","profile","src","usemap","value");var sw_httprp_js_event_handler_array=new Array("onblur","onchange","onclick","ondblclick","onfocus","onkeydown","onkeypress","onkeyup","onload","onmousedown","onmousemove","onmouseout","onmouseover","onmouseup","onreset","onselect","onsubmit","onunload");var sw_httprp_log_debug=false;var sw_httprp_log_info=false;var sw_httprp_log_error=false;var sw_httprp_document_cookie;var sw_httprp_orig_document_url;try{sw_httprp_orig_document_url=document.URL;}catch(e){sw_httprp_orig_document_url=window.document.URL;} if(sw_httprp_orig_document_url==location.href) {sw_httprp_set_location_href((location.href).replace(/\?.*$/,""));sw_httprp_orig_document_url=sw_httprp_orig_href;} else{sw_httprp_set_location_href(sw_httprp_orig_document_url.replace(/\?.*$/,""));sw_httprp_orig_document_url=sw_httprp_orig_href;sw_httprp_set_location_href((location.href).replace(/\?.*$/,""));} sw_httprp_document_cookie=sw_httprp_get_unsigned_cookies(window.document.cookie);function sw_httprp_log(str,level) {if(sw_httprp_log_debug&&level==SW_HTTPRP_LOG_LEVEL_DEBUG) {document.writeln("Debug:      "+str+"
");} else if(sw_httprp_log_info&&level==SW_HTTPRP_LOG_LEVEL_INFO) {document.writeln("Info:   "+str+"
");} else if(sw_httprp_log_error&&level==SW_HTTPRP_LOG_LEVEL_ERR) {document.writeln("Error:"+str+"
");}} function sw_httprp_rewrite_document(docStr) {var saveStr=docStr;var httprpoutresp="null";var beg=0,end=0;var httprp_regex_matches=undefined;if(docStr==undefined||docStr==null||docStr.length<=0||typeof(docStr)!="string"){return docStr;} if(!sw_httprp_body_regex_obj.test(docStr)) {var tagbegpos=docStr.indexOf('<');var tagendpos=docStr.indexOf('>');if(tagbegpos0) {httprpoutresp=docStr.substring(0,tagbegpos)+ sw_httprp_rewrite_document(docStr.substring(tagbegpos,docStr.length));return httprpoutresp;} else if(tagendpos0) {httprpoutresp=sw_httprp_rewrite_attrlist_str(docStr.substring(0,tagendpos))+'>'+ sw_httprp_rewrite_document(docStr.substring(tagendpos+1,docStr.length));} else if(tagbegpos==0||tagendpos==0) {httprpoutresp=docStr.charAt(0)+ sw_httprp_rewrite_attrlist_str(docStr.substring(1,docStr.length));} else httprpoutresp=sw_httprp_rewrite_attrlist_str(docStr);return httprpoutresp;} while((httprp_regex_matches=sw_httprp_body_regex_obj.exec(docStr))!=null) {var httprpinresp=new String(saveStr);end=httprpinresp.indexOf(httprp_regex_matches[0],beg)+httprp_regex_matches[0].length;if(httprpoutresp=="null") {httprpoutresp=httprpinresp.substring(beg,httprpinresp.indexOf(httprp_regex_matches[0],beg));} else {httprpoutresp+=httprpinresp.substring(beg,httprpinresp.indexOf(httprp_regex_matches[0],beg));} if(httprpoutresp==undefined) {httprpoutresp="";} httprpoutresp+=sw_httprp_rewrite_html_tag(httprp_regex_matches[0]);beg=end;docStr=saveStr.substring(beg);} if(docStr.length>0) {httprpoutresp+=sw_httprp_rewrite_document(docStr);} return httprpoutresp;} var owa_cached_imgelem=undefined;var owa_cached_imgelem2=undefined;function sw_httprp_rewrite_attrlist_str(attrliststr) {var beg=0;var tagprefix="0) {if(httprpinresp.charAt(charIndex)!=' ') break;else {charIndex=charIndex-1;spacetrailer=1;continue;}} if(httprpinresp.charAt(charIndex)=='>')NO_tagsuffix=1;if(httprpinresp.charAt(httprpinresp.length-1)!='>') {if((spacetrailer==1)&&(NO_tagsuffix==1)) {tagsuffix='';}else {tagsuffix=">";fakehttprpinresp+=tagsuffix;}} else tagsuffix='';fakehttprpoutresp=sw_httprp_rewrite_html_tag(fakehttprpinresp);httprpoutresp=fakehttprpoutresp.substring(tagprefix.length,fakehttprpoutresp.length-tagsuffix.length);if(spacetrailer) httprpoutresp+=' ';return httprpoutresp;} function sw_httprp_insert_rewrite_lib() {function declareVar(name,defaultVal) {var v=(name in window)?window[name]:defaultVal;if(typeof v==='string'&&v.length===0){v='""';} return"var "+name+"="+v+";";} var i,insertScript="",varObj,sw_vars=[{name:"csrfFlg",val:0},{name:"csrfToken",val:""},{name:"offloadRewrite",val:0},{name:"appServerIP",val:""},{name:"appServerIPv6",val:""},{name:"appHostname",val:""},{name:"appHostAlias",val:""},{name:"appServerPort",val:0},{name:"ubaEnabled",val:0},{name:"ubaAlias",val:""},{name:"ubaAddress",val:""},{name:"ubaPort",val:0}];insertScript="";insertScript+="\n";return insertScript;} function sw_httprp_rewrite_html_tag(tagStr) {var httprpinresp=sw_httprp_stripMetaChars(new String(tagStr));var httprpoutresp;var initHttprpRegexMultiline=RegExp.multiline;var trimTag=new String(sw_httprp_str_trim(httprpinresp));var i=0;var owa_cached_imgelem_flg=0;var owa_cached_imgelem_flg2=0;if(httprpinresp==null||trimTag.length==0) {return httprpinresp;} if((httprpinresp.search(//)!=-1)) {return httprpinresp;} RegExp.multiline=true;if(!sw_httprp_tag_regex_obj.test(httprpinresp)) {RegExp.multiline=initHttprpRegexMultiline;return httprpinresp;} if(sw_httprp_owa_flg==1) {if(httprpinresp.search(/flg-empty.gif/)!=-1) {owa_cached_imgelem_flg=1;} if(owa_cached_imgelem_flg==1&&owa_cached_imgelem!=undefined) {return owa_cached_imgelem;} if(httprpinresp.search(/icon-msg-read.gif/)!=-1) {owa_cached_imgelem_flg2=1;} if(owa_cached_imgelem_flg2==1&&owa_cached_imgelem2!=undefined) {return owa_cached_imgelem2;}} var httprp_regex_matches=sw_httprp_tag_regex_obj.exec(httprpinresp);RegExp.multiline=initHttprpRegexMultiline;var htmlTagName=httprp_regex_matches[HTTPRP_TAGNAME_MATCH_INDEX];var htmlEndTagMarker=httprp_regex_matches[HTTPRP_ENDTAG_MATCH_INDEX];var attrListBuf=new String(httprp_regex_matches[HTTPRP_ATTRLIST_MATCH_INDEX]);var rewriteAttrListBuf=new String(attrListBuf);var attrList_so=0;httprpoutresp=httprpinresp.substring(0,httprpinresp.indexOf(htmlTagName));httprpoutresp+=sw_httprp_str_trim(htmlTagName)+" ";while((httprp_regex_matches=sw_httprp_tag_attr_regex_obj.exec(rewriteAttrListBuf))!=null) {var htmlTagAttrName=undefined,attrValueStr,quotStr=0,attrStr;var attrValue_so=0,attrValue_eo=0,attrFound=-1;var rewriteFlg=false;attrStr=httprp_regex_matches[HTTPRP_ATTRSTR_MATCH_INDEX];htmlTagAttrName=httprp_regex_matches[HTTPRP_ATTRNAME_MATCH_INDEX];if(attrList_so!=0) {if(attrListBuf.substring(attrList_so-1,attrListBuf.indexOf(htmlTagAttrName,attrList_so))==" ") httprpoutresp+=attrListBuf.substring(attrList_so-1,attrListBuf.indexOf(htmlTagAttrName,attrList_so));else httprpoutresp+=attrListBuf.substring(attrList_so,attrListBuf.indexOf(htmlTagAttrName,attrList_so));} if((httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX]!="")&&(httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX]!=undefined)) {httprpoutresp+=htmlTagAttrName;httprpoutresp+=httprp_regex_matches[HTTPRP_EQUALS_MATCH_INDEX];attrValueStr=httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX];if((httprp_regex_matches[HTTPRP_DQUOT_MATCH_INDEX]!="")&&(httprp_regex_matches[HTTPRP_DQUOT_MATCH_INDEX]!=undefined)) {quotStr='"';} else if((httprp_regex_matches[HTTPRP_SQUOT_MATCH_INDEX]!="")&&(httprp_regex_matches[HTTPRP_SQUOT_MATCH_INDEX]!=undefined)) {quotStr='\'';} if(quotStr!=0) {httprpoutresp+=quotStr;attrValueStr=httprp_regex_matches[HTTPRP_ATTRVALUE_MATCH_INDEX];attrValueStr=attrValueStr.substring(1,attrValueStr.length-1)} attrFound=bsrch(sw_httprp_tag_attr_array,htmlTagAttrName.toLowerCase(),0,sw_httprp_tag_attr_array.length-1);if(attrFound>=0) {rewriteFlg=true;if((sw_httprp_tag_attr_array[attrFound]=="codebase"||sw_httprp_tag_attr_array[attrFound]=="value")&&(attrValueStr=="."||attrValueStr=="./"||(sw_httprp_cgi_path==sw_httprp_apache_path_normal?attrValueStr.match("^/"+sw_httprp_cgi_path+"https?:/"):false)||attrValueStr.match("^https://"+location.host))) {rewriteFlg=false;} else {httprpoutresp+=sw_httprp_rewrite_url(attrValueStr);}} if(!rewriteFlg) {var attrFound=bsrch(sw_httprp_js_event_handler_array,htmlTagAttrName.toLowerCase(),0,sw_httprp_js_event_handler_array.length-1);if(attrFound>=0) {rewriteFlg=true;} if(rewriteFlg) {httprpoutresp+=attrValueStr;} else {httprpoutresp+=attrValueStr;}} if(quotStr!=0) {httprpoutresp+=quotStr;}} else {httprpoutresp+=htmlTagAttrName;if((httprp_regex_matches[HTTPRP_ATTRSPACE_MATCH_INDEX]!=undefined)&&(httprp_regex_matches[HTTPRP_ATTRSPACE_MATCH_INDEX]!="")) {httprpoutresp+=httprp_regex_matches[HTTPRP_ATTRSPACE_MATCH_INDEX];}} attrValue_eo=attrListBuf.indexOf(attrStr,attrValue_so)+attrStr.length;attrValue_so=attrValue_eo;if(attrValue_so<=attrList_so) {attrList_so+=attrStr.length;rewriteAttrListBuf=attrListBuf.substring(attrList_so);} else {attrList_so=attrValue_so;rewriteAttrListBuf=attrListBuf.substring(attrValue_so);}} httprpoutresp+=htmlEndTagMarker;if(htmlTagName.toUpperCase().replace(/ /g,'')==='HTML'){httprpoutresp+=sw_httprp_insert_rewrite_lib();} if(owa_cached_imgelem_flg==1) owa_cached_imgelem=httprpoutresp;else if(owa_cached_imgelem_flg2==1) owa_cached_imgelem2=httprpoutresp;return httprpoutresp;} function sw_httprp_rewrite_location_pathname(path) {var begPos=sw_httprp_base.indexOf('/');var endPos=sw_httprp_base.length;var sw_base_path=sw_httprp_base.substr(begPos,endPos);var sw_full_path=sw_base_path+sw_httprp_orig_proto+"://"+sw_httprp_orig_host+path;return sw_full_path;} function sw_httprp_inject_csrf_token(url) {var SW_TOKEN_ID="__swl";var httpFlg;var httpsFlg;var qspos=0;if(typeof csrfFlg==="undefined"||csrfFlg==0) {return url;} if((url.search(/(\/|\?|\.)/)<0)) {return url;} if((httpsFlg=!(url.search(sw_httprp_https_head)))||(httpFlg=!(url.search(sw_httprp_http_head)))) {var proto_len=((httpFlg==1)?sw_httprp_http_head.length:sw_httprp_https_head.length);if(sw_httprp_cgi_path==undefined&&sw_httprp_apache_flg==1) {if((url.substring(proto_len)).indexOf(sw_httprp_orig_host)!=0) {return url;}}} if((qspos=url.indexOf('?'))<0) {url+='?';} else {var tmp="[?&]"+SW_TOKEN_ID;if(((url.substring(qspos)).search(tmp))>=0) {return url;} url+='&'} url+=((csrfToken==undefined)?"":csrfToken);return url;} function sw_httprp_elementInsert(child) {var newURL="";if(child.nodeType&&child.nodeType===1&&child.tagName) {if(child['src']) {newURL=sw_httprp_rewrite_url(child['src']);if(child['src']!==newURL) {child['src']=newURL;}} if(child.style&&child.style['backgroundImage']) {var urlRegExp=new RegExp('url\\((.+)\\)','i');var result;if((result=urlRegExp.exec(child.style['backgroundImage']))) {if(result[1]) {newURL='url('+sw_httprp_rewrite_url(result[1])+')';if(child.style['backgroundImage']!==newURL) {child.style['backgroundImage']=newURL;}}}} if(child.nodeName&&child.nodeName.toLowerCase()==='style'){try{child.innerHTML=child.innerHTML.replace(/(@font\-face\s*)\{([^}]+)\}/gi,function(all,fontFace,attributes){var newAttributes;newAttributes=(' '+attributes).replace(/(\W+src\s*:\s*url)\((['"]{0,1})([^'")]+)\2\)/i,function(all,pre,sep,url){return pre+"("+sep+sw_httprp_rewrite_url(url)+sep+")";});return fontFace+'{'+newAttributes+'}';});}catch(e){}}} return child;} function sw_httprp_mozBinding_rewrite(urlStr) {var urlRegExp=/url\((["']{0,1})([^"'\)]+)(["']{0,1})\)/i;var result,newURL;result=urlRegExp.exec(urlStr);if(result) {if(result[2]) {newURL=sw_httprp_rewrite_url(result[2]);if(newURL!==result[2]) {return'url('+result[1]+newURL+result[1]+')';}}} return urlStr;} function sw_httprp_rewrite_url(urlStr) {if(urlStr==undefined||urlStr.length<=0||(typeof(urlStr)).indexOf("string")<0) {return urlStr;} var urlStrLowerCase=urlStr.toLowerCase();if(sw_httprp_str_trim(urlStrLowerCase).match("^javascript:")) {return urlStr;} if(urlStrLowerCase.indexOf(sw_httprp_http_head_encode)==0||urlStrLowerCase.indexOf(sw_httprp_https_head_encode)==0){urlStr=decodeURIComponent(urlStr);urlStrLowerCase=decodeURIComponent(urlStrLowerCase);} urlStr=sw_httprp_inject_csrf_token(urlStr);if(sw_httprp_cgi_path==undefined&&sw_httprp_apache_flg==1) {if(urlStrLowerCase.match(sw_httprp_proto_regex_obj)) {if(offloadRewrite==1) {var urlPart='';var urlHost='';var urlPort=0;if(urlStrLowerCase.match(sw_httprp_proto_http_regex_obj)) {urlPart=(urlStr.substring(HTTP_PROTO_STR_LEN));} else if(urlStrLowerCase.match(sw_httprp_proto_https_regex_obj)) {urlPart=(urlStr.substring(HTTPS_PROTO_STR_LEN));} var i=0;for(i=0;i0) {cmpPos=cmpPos-sw_httprp_cgi_path.length;if(cmpPos==0) {cmpstring=urlstr.substring(0,substringPos);if(cmpstring==sw_httprp_cgi_path) {return endpos;} else {return 0;}} else if(cmpPosb)) min=b;if((c!=undefined)&&(min>c)) min=c;return min;} function sw_httprp_rewrite_uba_url(urlStr) {if(urlStr.charAt(0)=='/') {var alias=ubaAlias;var aliasNameLen=alias.length;if((aliasNameLen<=urlStr.length)&&(alias==urlStr.substring(0,aliasNameLen))) return urlStr;else return alias+sw_httprp_strip_uba_path(urlStr);} else return urlStr;} function sw_httprp_strip_uba_path(urlPart) {if(ubaPath.charAt(0)!='\0') {var pathLen=ubaPath.length;var urlLen=urlPart.length;if(ubaPath==urlPart.substring(0,pathLen)) return urlPart.substring(pathLen,urlLen);} return urlPart;} function sw_httprp_set_location_href(urlStr) {var matches;var request_regex=new RegExp(sw_httprp_request_regex,"i");var orig_path=undefined;if(!request_regex.test(urlStr)) return false;matches=request_regex.exec(urlStr);for(var i=0;i<=matches.length;++i) sw_httprp_log("matches["+i+"] = "+matches[i],SW_HTTPRP_LOG_LEVEL_DEBUG);sw_httprp_base=matches[HTTPRP_BASE_MATCH_INDEX];sw_httprp_orig_proto=matches[HTTPRP_ORIG_PROTO_MATCH_INDEX];sw_httprp_orig_proto_prefix=sw_httprp_orig_proto+':';sw_httprp_orig_host=matches[HTTPRP_ORIG_HOST_MATCH_INDEX];if(sw_httprp_orig_host.match(/^%5B[:0-9a-f]+%5D$/i)) {sw_httprp_orig_host=sw_httprp_orig_host.replace('%5B','[').replace('%5D',']');} if(sw_httprp_orig_proto=="") sw_httprp_is_portal_flg=1;orig_path=matches[HTTPRP_ORIG_PATH_MATCH_INDEX].substring(0,matches[HTTPRP_ORIG_PATH_MATCH_INDEX].lastIndexOf('/')+1);if(orig_path==undefined||orig_path.length==0) sw_httprp_orig_path='/';else sw_httprp_orig_path=orig_path;sw_httprp_orig_doc=matches[HTTPRP_ORIG_PATH_MATCH_INDEX].substring(matches[HTTPRP_ORIG_PATH_MATCH_INDEX].lastIndexOf('/')+1);sw_httprp_orig_pathname=sw_httprp_orig_path+sw_httprp_orig_doc;sw_httprp_location_href=urlStr;if(!urlStr.match(new RegExp("/$"))) sw_httprp_location_href+='/';sw_httprp_host_url="https://"+sw_httprp_base;if(!sw_httprp_is_portal_flg)sw_httprp_host_url+=sw_httprp_orig_proto+"://"+sw_httprp_orig_host;sw_httprp_base_ref="https://"+sw_httprp_base;if(!sw_httprp_is_portal_flg) sw_httprp_orig_href=sw_httprp_orig_proto+"://"+sw_httprp_orig_host+sw_httprp_orig_pathname;else sw_httprp_orig_href=sw_httprp_orig_pathname;sw_httprp_base_ref_regex_obj=new RegExp("^"+sw_httprp_base_ref.toLowerCase());} function sw_httprp_resolve_rel_parent_ref(urlStr) {return sw_httprp_resolve_parent_ref(urlStr,0);} function sw_httprp_resolve_abs_parent_ref(urlStr) {var matches=sw_httprp_abs_url_regex_obj.exec(urlStr);if(matches!=null&&matches.length>0) {if(matches[1]==undefined&&matches[2]==undefined) return urlStr;else if(matches[1]==undefined) return sw_httprp_resolve_rel_parent_ref(matches[2]);else if(matches[2]==undefined) {if(sw_httprp_is_portal_flg) return"";else return matches[1];} else {if(sw_httprp_is_portal_flg) return sw_httprp_resolve_rel_parent_ref(matches[2]);else return matches[1]+sw_httprp_resolve_rel_parent_ref(matches[2]);}} else {return sw_httprp_resolve_parent_ref(urlStr);}} function sw_httprp_resolve_parent_ref(httprpinresp,depth){var path=sw_httprp_stripQS(httprpinresp);var qsIndex=sw_httprp_getQSIndex(httprpinresp);var qs=(qsIndex>=0)?httprpinresp.substring(qsIndex,httprpinresp.length):null;var dirent_names=path.split('/');var httprpoutresp="";var i=0;if(depth==undefined) {depth=sw_httprp_get_depth(sw_httprp_orig_path);} if(httprpinresp==undefined||sw_httprp_str_trim(httprpinresp).length==0) {return httprpinresp;} if(httprpinresp.charAt(0)=='/') {httprpoutresp+="/";} for(i=0;i0) {--depth;httprpoutresp+=dirent_names[i];if(i<(dirent_names.length-1)) {httprpoutresp+="/";}} else if(httprpoutresp.length==0) {continue;}}} if(qs!=null) {httprpoutresp+=qs;} return httprpoutresp;} function sw_httprp_get_depth(pathStr) {var path=sw_httprp_stripQS(pathStr);var dirent_names;var depth=0,i=0;if(path==undefined) return 0;dirent_names=path.split('/');for(i=0;i0) {--depth;}} else if(dirent_names[i]==".") {continue;} else if(dirent_names[i]!="") {++depth;}} return depth;} function sw_httprp_str_trim(str) {if(str==undefined) return undefined;return str.replace(/^\s*(\S|\S.*\S)\s*$/,"$1");} function sw_httprp_stripMetaChars(str) {var i=0,c='';var noMetaCharsStr=new String();while(i=0) path=pathStr.substring(0,qsIndex);else path=pathStr;return path;} function sw_httprp_getQSIndex(pathStr) {return pathStr.indexOf('?');} function sw_httprp_rewrite_documentDotWrite(body) {var docHtmlStream='';sw_documentDotWriteBuffer+=body;var url=location.href;if(sw_httprp_owa_flg) {var cur=new String(body);var cur_index=0;while(1) {var tag;cur_index=cur.search('>');if(cur_index<0) break;tag=cur.substring(0,cur_index+1);docHtmlStream+=sw_httprp_rewrite_document(tag);cur=cur.substring(cur_index+1,cur.length);} if(cur.length>0) docHtmlStream+=sw_httprp_rewrite_document(cur);} else if(sw_httprp_basictag_regex_obj.test(sw_documentDotWriteBuffer)) {docHtmlStream=sw_httprp_rewrite_document(sw_documentDotWriteBuffer);sw_documentDotWriteBuffer='';} else if(sw_documentDotWriteBuffer==body) {var cur=new String(body);var cur_index=0;cur_index=cur.search('<|>');if(cur_index<0) {sw_documentDotWriteBuffer='';return body;}} return docHtmlStream;} function sw_httprp_rewrite_innerOrOuterHTML(body) {body=stripOffOwnTags(body);sw_documentDotWriteBuffer='';return sw_httprp_rewrite_documentDotWrite(body);function stripOffSafeCheck(body) {var ownDefined='\\bsw_httprp_.+';var regex=new RegExp(ownDefined);var isSafe=true;if(regex.exec(body)) {isSafe=false;} return isSafe;} function stripOffOwnTags(body) {var jsFileFullAddress=sw_httprp_base_ref?sw_httprp_base_ref:'/';jsFileFullAddress+='sw_httprp.js';jsFileFullAddress+='.*?';var ownTagsRegexStr='\\n';var ownTagsRegex=new RegExp(ownTagsRegexStr,'i');var matchs=ownTagsRegex.exec(body);var stripedBody='';if(matchs) {stripedBody=body.replace(matchs[0],'');if(stripOffSafeCheck(stripedBody)) {return stripedBody;}} return body;}} function sw_httprp_rewrite_documentDotWriteln(body) {var docHtmlStream='';docHtmlStream=sw_httprp_rewrite_documentDotWrite(body);if(docHtmlStream=='')sw_documentDotWriteBuffer+='\n';return docHtmlStream;} function bsrch(list,item,left,right) {var mid;while(left<=right) {mid=Math.floor((right-left)/2)+left;if(item>list[mid]) left=mid+1;else if(item0)&&(maxloops>0)) {for(i=0;i=0) {if(domainPortStr.indexOf('[')==-1||domainPortStr.indexOf(']')==-1) {domainPortArray.push(domainPortStr.substring(0,portDelim));domainPortArray.push(domainPortStr.substring(portDelim+1));} else {if(portDelim>domainPortStr.indexOf(']')) {domainPortArray.push(domainPortStr.substring(0,portDelim));domainPortArray.push(domainPortStr.substring(portDelim+1));} else {domainPortArray.push(domainPortStr);}}} else {domainPortArray.push(domainPortStr);} return domainPortArray;} function sw_httprp_is_default_port(portStr,schemeStr) {if((portStr==="80"&&schemeStr.toLowerCase()==="http")||(portStr==="443"&&schemeStr.toLowerCase()==="https")){return true;}else{return false;}} function sw_httprp_make_cookie(cookieStr) {var domainPortArray=sw_httprp_get_domain_port(sw_httprp_orig_host);var modCookieStr=undefined;var cookieNoSp=cookieStr.replace(/\s/,"");var pathPos,pathEndPos;var securePos;modCookieStr="__proxy_ssl_vpn__COOKIE__"+domainPortArray[0]+"__";if(domainPortArray[1]!==undefined&&!sw_httprp_is_default_port(domainPortArray[1],sw_httprp_orig_proto)) {modCookieStr+=domainPortArray[1]+"__";} pathPos=cookieNoSp.indexOf("path=");if(pathPos!==-1&&cookieNoSp.charAt(pathPos-1)===';') {pathEndPos=cookieNoSp.indexOf(';',pathPos);modCookieStr+=cookieNoSp.slice(0,pathPos);modCookieStr+="path=/";if(pathEndPos!==-1) {modCookieStr+=cookieNoSp.slice(pathEndPos);}}else {modCookieStr+=cookieStr;modCookieStr+=";path=/";} securePos=cookieNoSp.indexOf("secure");if(securePos===-1||cookieNoSp.charAt(securePos-1)!==';') {modCookieStr+=";secure";} return modCookieStr;} function sw_httprp_rewrite_uba_cookie(cookieStr) {var modCookieStr=undefined;var cookieNoSp=cookieStr.replace(/\s/,"");var pathPos=cookieNoSp.indexOf(";path=/");if(pathPos!==-1) {var alias=ubaAlias;modCookieStr+=cookieNoSp.slice(0,pathPos);modCookieStr+=";path=";modCookieStr+=alias;modCookieStr+=sw_httprp_strip_uba_path(cookieNoSp.slice(pathPos+6));} return modCookieStr;} function sw_httprp_sign_cookie(cookieStr) {var modCookieStr;var hostStr=sw_httprp_orig_host;if(typeof cookieStr!=="string")return cookieStr;if(hostStr=='') {if(sw_httprp_is_portal_flg) hostStr=window.location.host;else {sw_httprp_document_cookie+=cookieStr+";";return cookieStr;}} if(typeof(ubaEnabled)!=="undefined"&&ubaEnabled) modCookieStr=sw_httprp_rewrite_uba_cookie(cookieStr);else modCookieStr=sw_httprp_make_cookie(cookieStr);if(document!=undefined) {try{window.document.cookie=modCookieStr;sw_httprp_document_cookie=sw_httprp_add_cookie(sw_httprp_document_cookie,cookieStr);}catch(e){}} return cookieStr;} function sw_httprp_get_unsigned_cookies(cookieDictionary) {var unsignedCookieList="";var document_cookies="";var SCDOMAIN_CONSTANT_LEN=8;var SCDOMAIN_CONSTANT_STR="SCDOMAIN";var DOMAIN_REGEX_INDEX=1;var PORT_REGEX_INDEX=3;var cookieList;var i;var domainPortArray=sw_httprp_get_domain_port(sw_httprp_orig_host);var dotIndexInDomain=domainPortArray[0].indexOf('.');try{document_cookies=cookieDictionary;}catch(e){return unsignedCookieList;} cookieList=document_cookies.split(";");for(var i=0;i